//#include <stdio.h>
//#include <stdlib.h>
//const char* file_name="student_data.dat"
//
//const char output_format = "%10s%4d%4d%7.2lf"
//typedef struct  Student{
//	long offset;
//	char name[20];
//	int age;
//	int class;
//	double height;
//}Student;
//
//#define MAX_N 10000
//Student stus[MAX_N+5];
//int scnt;
//
//void list_student(){
//	int len=printf("%4s|%10s|%4s|%6s|%7s|","id","name","age","class","height");
//	printf("\n");
//	for(int i=0;i<len;i++)
//		printf("=");
//	printf("\n");
//	for(int i=0;i<scnt;i++){
//		printf("%4d|%10s|%4d|%6d|%7.2f|\n",i,
//			stus[i].name,
//			stus[i].age,
//			stus[i].class,
//			stus[i].height
//			);
//	}
//	
//	return ;
//}
//void add_a_student(){
//	printf("add new item:(name,age,class,height)\n");
//	printf("mysql>");
//	scanf("%s%d%d%lf",
//		&stus[scnt].name,
//		&stus[scnt].age,
//		&stus[scnt].class,
//		&stus[scnt].height
//		);
//	stus[scnt].offset=output_to_file(stus+scnt,1);
//	scnt+=1;
//}
//void modify_data_to_file(Student *stu){
//	FILE*fp=fopen(file_name,"rb+");
//	fseek(fp,stu->offset,0);
//fwrite(stu,sizeof(Student),1,fp);
//	
//}
//void modify_a_student(){
//{
//	list_students();
//	int id;
//	do{
//		printf("modify id:");
//		scanf("%d",&id);
//	}while(id<0||id>scnt);
//	printf("mysql>");
//	scanf("%s%d%d%lf",
//		&stus[id].name,
//		&stus[id].age,
//		&stus[id].class,
//		&stus[id].height
//		);
//	stus[id].offset;
//	modify_data_to_file(stus+id);
//}}
//enum NO_TYPE{
//	LIST,
//	ADD,
//	MODIFY,
//	DELETE,
//	QUIT
//};
//void restor_data_to_file(Student *arr,int n){
//	clear_file();
//	output_to_file(arr,n);
//}
//int read_from_file(Student* arr){
//	int i=0;
//	FILE *fp=fopen(file_name,"rb");
//	if(fp==NULL) return 0;
//	while(1)
//		{long offset =ftell(fp);
//		if(fread(arr+i,sizeof(Student),1,fp)==0) break;
//		arr[i].offset=offset;
//		fgetc(fp);
//		i+=1;
//	}fclose(fp);
//}
//int output_to_file(Student *arr,int n){
//	FILE *fp=fopen(file_name,"ab");
//	fseek(fp,0,2);
//	long offset=ftell(fp);
//	fwrite(arr,sizeof(Student),n,fp);
//	for(int i=0;i<n;i++){
//		fprintf(fp,"%s %d %d %.2lf",
//			arr[i].name,arr[i].age,
//			arr[i].class,arr[i].height);
//	}
//	fclose(fp);
//	return offset;
//}
//
//int usage(){
//	int no;
//	do{
//		printf("%d:list students\n",LIST);
//		printf("%d:add a new student\n",ADD);
//		printf("%d:modify a student\n",MODIFY);
//		printf("%d:deletea student\n",DELETE);
//		printf("%d:quit\n",QUIT);
//		printf("mysql>");
//		scanf("%d",&no);
//	}while(no<1||no>5);
//	return no;
//}
//void delete_a_student(){
//	if(scnt==0)
//	{
//		printf("there is no student");
//	return ;}
//	list_students();
//	int id;
//	do{
//		printf("delete id:");
//		scanf("%d",&id);
//	}while(id<0||id>scnt);
//	char s[100];
//	printf("confirm (y/n):");
//	fflush(stdin);
//	scanf("%[\^n]",s);
//	if(s[0]!='n')
//		return ;
//	for(int i=id+1;i<scnt;i++)
//	{
//		long offset=stus[i-1].offset;
//		stus[i-1]=stus[i];
//		stus[i-1].offset=offset;
//	}
//	scnt-=1;
//	restor_data_to_file(stus,scnt);
//	return ;
//}
//int main()
//{
//	scnt=read_from_file(stus);
//	while(1){
//		int no=usage();	
//		switch(no){
//			case LIST:printf("list students\n");
//			list_student();
//			break;
//			case ADD:
//			{
//				add_a_student();
//			}break;
//			case MODIFY:{
//				modify_a_student();
//			}break;
//			case DELETE:{
//				delete_a_student();
//			}break;
//			case QUIT:printf("quit\n");
//			exit(0);
//		}
//	}
//	
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	FILE *fp=fopen("data5.txt","w");
//	printf("ftell(fp)=%ld\n",ftell(fp));
//	fprintf(fp,"0123456789");
//	printf("after print 0123456789 ftell(fp)=%ld\n",ftell(fp));//10
//	fseek(fp,2,0);
//	printf("after feek(2) ftell(fp)=%ld\n",ftell(fp));//2
//	fprintf(fp,"abc");
//	printf("after print abc ftell(fp)=%ld\n",ftell(fp));//5
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	FILE *fp=fopen("data5.txt","r");
//	int n;
////	fseek(fp,5,SEEK_SET);
//	fscanf(fp,"5d",&n);
//	printf("fscnaf n=%d\n",n);
//	return 0;
//}

//#include <stdio.h>
//void r_plus_access(){
//	FILE *fp=fopen("data5.txt","r+");
//	fseek(fp,5,SEEK_SET);
//	int n;
//	fscanf(fp,"%d",&n);
//	printf("r+:n=%d",n);
//	fseek(fp,6,0);
//	fprintf(fp,"876");
//	fclose(fp);
//}
//void w_plus_access(){
//	FILE *fp=fopen("data8.txt","w+");
//	fprintf(fp,"hello world123456abc7890");
//	fseek(fp,-4,SEEK_END);
//	int n;
//	fscanf(fp,"%d",&n);
//	printf("w+:n=%d\n",n);
//	fseek(fp,12,SEEK_SET);
//	fprintf(fp,"xyz");
//	fclose(fp);
//}
//void a_plus_access(){
//	FILE *fp=fopen("data8-2.txt","a+");
//	fprintf(fp,"1234567890");
//	fseek(fp,0,SEEK_SET);
//	fprintf(fp,"0987654321");
//	fseek(fp,0,SEEK_SET);
//	int n;
//	fscanf(fp,"%4d",&n);
//	printf("a+ : n =%d\n ",n);
//	fclose(fp);
//}
//int main()
//{
////	r_plus_access();
////	w_plus_access();
//	a_plus_access();
//
//	return 0;
//}

//#include <stdio.h>
//#include <time.h>
//#include <stdlib.h>
//void output(int *arr,int n){
//	printf("arr:");
//	for(int i=0;i<n;i++){
//		printf("%d",arr[i]);
//	}
//	printf("\n");
//	return ;
//}
//int fwrite_test()
//{
//	srand(time(0));
//	#define MAX_N 10
//	int arr[MAX_N];
//	for(int i=0;i<MAX_N;i++)
//	{
//		arr[i]=rand()%10000;
//	}
//	output(arr,MAX_N);
//	FILE*fp=fopen("data10.dat","wb");
//	fwrite(arr,sizeof(int),MAX_N,fp);
//	fclose(fp);
//	return 0;
//}
//
//int main(){
//	int arr[MAX_N];
//	FILE *fp=fopen("data10.dat","rb");
//	output(arr,MAX_N);
//	fread(arr,sizeof(int),MAX_N,fp);
//	output(arr,MAX_N);
//	return 0;
//}
//#include <stdio.h>
//#include <time.h>
//#include <stdlib.h>
//int page1_usage(){
//	printf("1:goto page 2\n");
//	printf("2:goto page 3\n");
//	printf("3:goto page 4\n");
//	int x=-1;
//	do{
//		printf("input:");
//		scanf("%d",&x);
//	}while(x<1||x>3);
//	return x;
//}
//int page2_usage()
//{
//	printf("0:back to page1\n");
//	printf("1:go to page5\n");
//	int x;
//	do{
//		printf("input:");
//		scanf("%d",&x);
//	}while(x<0||x>1);
//	return x;
//}
//int page4_usage()
//{
//	printf("0:back to page1\n");
//	printf("1:go to page5\n");
//	int x;
//	do{
//		printf("input:");
//		scanf("%d",&x);
//	}while(x<0||x>1);
//	return x;
//}
//void page3_run(){
//	int arr[10],len=0;
//	for(int i=0;i<10;i++)
//		arr[i]=rand()%100;
//	for(int i=0;i<10;i++){
//		printf("%3d",i);
//		len+=printf("%3d",i);
//	}
//	printf("\n");
//	for(int i=0;i<10;i++){
//		printf("%3d",arr[i]);
//	}
//}
//void page5_run()
//{
//	printf("hello this is page 5");
//	return;
//}
//int main ()
//{
//	srand(time(0));
//	int status=1;
//	while(1){
//		switch(status){ 
//			case 1:{
//				printf("into page1:\n");
//				int x=page1_usage();
//				if(x==1) status=2;
//				if(x==2) status=3;
//				if(x==3) status=4;
//			}break;
//			case 2:{
//				printf("into page2:\n");
//				int x=page2_usage();
//				if(x==0) status=1;
//				else if(x==5) status=5;
//			}break;
//			case 3:{
//				printf("into page3:\n");
//				page3_run();
//				status=5;
//			}break;
//			case 4:{
//				printf("into page4:\n");
//				int x=page4_usage();
//				if(x==0) status=1;
//				else if(x==5) status=5;
//			}break;
//			case 5:{
//				printf("into page5:\n");
//				page5_run();
//				status=1;
//			}break;
//		}
//	}
//	
//	return 0;
//}
#include <stdio.h>
int arr[10];
__attribute__((constructor)) void test1(){
	arr[0]=100;
	return ;
}
__attribute__((constructor)) void test2(){
	arr[1]=99;
	return ;
}
__attribute__((constructor)) void test3(){
	arr[2]=10086;
	return ;
}
int main(){
	for(int i=0;i<10;i++)
	{
		printf("%-10d \n",arr[i]);
	}
	printf("\n");
	return 0;
}
